#define  _CRT_SECURE_NO_WARNINGS 1
#include<iostream>
#include<vector>

using namespace std;

//等差数列划分
//做的时候思路没有这么清晰，看到题解的时候才豁然开朗
//最近连着做了几道多状态的问题导致不太清晰，最关键的应该还是装态之间的分析
class Solution {
public:
    int numberOfArithmeticSlices(vector<int>& nums) {
        int n = nums.size();

        //创建dp表
        vector<int> dp(n);
        int ret = 0;
        //填表
        for (int i = 2; i < n; i++)
        {
            int a = nums[i - 2], b = nums[i - 1], c = nums[i];
            if ((c - b) == (b - a)) dp[i] = dp[i - 1] + 1;
            else dp[i] = 0;

            ret += dp[i];
        }
        //返回值
        return ret;
    }
};
int main()
{

	return 0;
}